package com.fastloan.mgt.postloan.model;

import com.fastloan.mgt.postloan.enums.PostLoanEnums;
import com.kawins.base.baseabs.BaseModel;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Transient;
import java.util.Date;

/**
 * @author gelon createTime 2017/11/16  贷后监控
 */
@javax.persistence.Table(name = "ZY_POST_LOAN_MONITOR")
public class ZyPostLoanMonitor extends BaseModel<String> {


    /**
     * 贷后监控id
     */
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private String id;
    /**
     * 贷后监控方式
     */
    private Integer postLoanMonitorSetupType;

    @Transient
    PostLoanEnums.SetupType[] postloanMonitorSetupTypeEnums = PostLoanEnums.SetupType.values();


    /**
     * 进件id
     */
    private String applicationId;
    /**
     * 贷后监控纪要
     */
    private String other;
    /**
     * 贷后实施方式
     */
    private Integer postLoanImplementType;

    @Transient
    PostLoanEnums.ImplementType[] postLoanMonitorSetupTypeEnums = PostLoanEnums.ImplementType.values();


    /**
     * 贷后监控结果 0:未完成
     */
    private Integer postLoanImplementResult;

    @Transient
    PostLoanEnums.ImplementResult[] postLoanImplementResultEnums = PostLoanEnums.ImplementResult.values();

    /**
     * 开始实施时间
     */
    private Date implementTime;


    /**
     * 创建时间
     */
    private Date createTime;
    /**
     * 实施最后时间
     */
    private Date endTime;

    public String getId() {
        return this.id;
    }

    public ZyPostLoanMonitor setId(String id) {
        this.id = id;
        return this;
    }

    public PostLoanEnums.ImplementType[] getPostLoanMonitorSetupTypeEnums() {
        return postLoanMonitorSetupTypeEnums;
    }

    public Integer getPostLoanMonitorSetupType() {
        return this.postLoanMonitorSetupType;
    }

    public ZyPostLoanMonitor setPostLoanMonitorSetupType(Integer postLoanMonitorSetupType) {
        this.postLoanMonitorSetupType = postLoanMonitorSetupType;
        return this;
    }

    public String getApplicationId() {
        return this.applicationId;
    }

    public ZyPostLoanMonitor setApplicationId(String applicationId) {
        this.applicationId = applicationId;
        return this;
    }

    public String getOther() {
        return this.other;
    }

    public ZyPostLoanMonitor setOther(String other) {
        this.other = other;
        return this;
    }

    public Integer getPostLoanImplementType() {
        return this.postLoanImplementType;
    }

    public ZyPostLoanMonitor setPostLoanImplementType(Integer postLoanImplementType) {
        this.postLoanImplementType = postLoanImplementType;
        return this;
    }

    public Integer getPostLoanImplementResult() {
        return this.postLoanImplementResult;
    }

    public ZyPostLoanMonitor setPostLoanImplementResult(Integer postLoanImplementResult) {
        this.postLoanImplementResult = postLoanImplementResult;
        return this;
    }

    public Date getCreateTime() {
        return this.createTime;
    }

    public ZyPostLoanMonitor setCreateTime(Date createTime) {
        this.createTime = createTime;
        return this;
    }

    public Date getEndTime() {
        return this.endTime;
    }

    public ZyPostLoanMonitor setEndTime(Date endTime) {
        this.endTime = endTime;
        return this;
    }

    public Date getImplementTime() {
        return implementTime;
    }

    public ZyPostLoanMonitor setImplementTime(Date implementTime) {
        this.implementTime = implementTime;
        return this;
    }

    public PostLoanEnums.SetupType[] getPostloanMonitorSetupTypeEnums() {
        return postloanMonitorSetupTypeEnums;
    }

    public PostLoanEnums.ImplementResult[] getPostLoanImplementResultEnums() {
        return postLoanImplementResultEnums;
    }
}
